home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
graphics
/
3dvect37.zip
/
MOVEIT.EXT
< prev
next >
Wrap
Text File
|
1994-06-22
|
12KB
|
381 lines
;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
;
; Filename : moveit.ext
; Included from: Your Program
; Description : External Definitions and Macros for Animations
;
; Written by: John McCarthy
; 1316 Redwood Lane
; Pickering, Ontario.
; Canada, Earth, Milky Way (for those out-of-towners)
; L1X 1C5
;
; Internet/Usenet: BRIAN.MCCARTHY@CANREM.COM
; Fidonet: Brian McCarthy 1:229/15
; RIME/Relaynet: ->CRS
;
; Home phone, (905) 831-1944, don't call at 2 am eh!
;
; John Mccarthy would really love to work for a company programming Robots
; or doing some high intensive CPU work. Hint. Hint.
;
; Send me your protected mode source code!
; Send me your Objects!
; But most of all, Send me a postcard!!!!
;
;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
extrn animate_this:near
extrn _standard_screen_draw:near
;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
; header commands
;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
hdone equ 0 ; done this header: (null)
hdone_all equ 1 ; done all headers - exit routine: (null)
hloopto equ 2 ; loop header:offset destination
hseq equ 3 ; do sequence: number (from sequence offset table)
;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
; sequencing animation commands (use them without the q part)
;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
qoff equ 0 ; turn object on/off:(type)
qon equ 1
object equ 1 ; turn object on/off
subobject equ 2 ; turn sub_object on/off
qnew_object equ 2 ; find next available object:(null)
qcamera equ 3 ; sequence affects camera, not object:(null)
qreset_irq equ 5 ; reset irq frame_number (null)
qset_mode equ 6 ; set xmode: mode,xactual,yactual,# of pages
qset_clip_a equ 7 ; set clipping - absolute method: x1,y1,x2,y2
qset_clip_o equ 8 ; clip - offset method: x1,y1,x2,y2,xcenter,ycenter
qshape equ 10 ; set shape of object: number
qmove equ 11 ; move object from whereever to: x,y,z,time to take
qpoint_tm equ 12 ; point object in direction it is moving: time
qlocation equ 14 ; put object at location:xs,ys,zs
qlocationx equ 15 ; adjust location of axis: xs
qlocationy equ 16 ; adjust location of axis: ys
qlocationz equ 17 ; adjust location of axis: zs
qangle equ 18 ; set object angle:vxs,vys,vzs
qanglex equ 19 ; adjust angle on single axis: vxs
qangley equ 20 ; adjust angle on single axis: vys
qanglez equ 21 ; adjust angle on single axis: vzs
qwait_for equ 22 ; end sequencing commands until argument resolved
; eg:wait command - where command is of the following
lc equ 3 ; wait for lcount = # (reach destination): number
ac equ 4 ; wait for acount = # (stop rotating): number
frame_a equ 5 ; wait for a specified frame number (absolute): number
frame_r equ 6 ; wait for a relative frame number: number
qexit equ 23 ; end this sequence - return to header commands: (null)
qset_bitmap equ 24 ; set object to bitmap: bitmap#,xscale,yscale
qbullet equ 25 ; set object to bullet: (null)
qalign_a equ 26 ; continously align objects angle to its direction: time
qalign_d equ 27 ; continously align objects direction to its angle: speed of object
qalign_off equ 28 ; automatic align mode off: (null)
qfade_all equ 30 ; fade palette to a common colour: red,grn,blu,add,inc,waitstate
qfade_to equ 31 ; fade palette to another palette: offset,add,inc,waitstate - note offset is relative!
qdraw_icon equ 32 ; decode bitmap from bitmap list: number,x1,y1,xscale,yscale
qinitialize equ 33 ; wipe video memory, palette and reset all 3d stuff
qfollow_me equ 34 ; get camera to follow this object: time
qfollow_obj equ 35 ; get camera to follow header number: header#,time
qpoint_obj equ 36 ; point object at location: x,y,z,time
qtext equ 37 ; display text string using font routine: offset string
qinit_bitmap equ 38 ; set bitbase offset: #,offset to bitmap,xscale,yscale
qinit_shape equ 39 ; set objbase offset: #,offset to shape data
qno_rotation equ 40 ; object has no rotation (userotate=1) :(null)
qfull_rotation equ 41 ; object has full rotation capabilities:(null)
qxref_palette equ 42 ; set cross referancing palette for object
qtwist_it equ 43 ; rotate object until location x,y,z in di frames
qtwist_x equ 44 ; twist object along single axis: x angle,time
qtwist_y equ 45 ; twist object along single axis: y angle,time
qtwist_z equ 46 ; twist object along single axis: z angle,time
qrotate_it equ 47 ; rotate object:vxadds,vyadds,vzadds,acount
qrotate_x equ 48 ; rotate object along single axis: x speed, count
qrotate_y equ 49 ; rotate object along single axis: y speed, count
qrotate_z equ 50 ; rotate object along single axis: z speed, count
qcall_me equ 51 ; call user defined subroutine: offset routine
qnew_mainline equ 52 ; define new mainline draw routine:offset routine
qoption1 equ 60 ; put your options here
qoption2 equ 61
qoption3 equ 62
;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
; these are the macros which set up the above commands
; for an example of how these work, see the sequence.inc file
;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
; header command macros
;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
done macro
dw hdone
endm
done_all macro
dw hdone_all
endm
loopto macro offxet
dw hloopto, offxet-s
endm
seq macro rat
dw hseq, rat
endm
; sequence command macros
off macro type
dw qoff,type
endm
on macro type
dw qon,type
endm
new_object macro
dw qnew_object
endm
camera macro
dw qcamera
endm
reset_irq macro
dw qreset_irq
endm
set_mode macro mode,xa,ya,pagez
dw qset_mode
dw mode,xa,ya,pagez
endm
set_clip_a macro aq,bq,cq,dq
dw qset_clip_a
dw aq,bq,cq,dq
endm
set_clip_o macro aq,bq,cq,dq,su,du
dw qset_clip_o
dw aq,bq,cq,dq,su,du
endm
shape macro shpa
dw qshape,shpa
endm
move macro ra,rb,rc,tm
dw qmove
dd ra,rb,rc
dw tm
endm
point_tm macro timegg
dw qpoint_tm,timegg
endm
location macro xc,yc,zc
dw qlocation
dd xc,yc,zc
endm
locationx macro rq
dw qlocationx
dd rq
endm
locationy macro rq
dw qlocationy
dd rq
endm
locationz macro rq
dw qlocationz
dd rq
endm
angle macro vqs,vzs,vts
dw qangle,vqs,vzs,vts
endm
anglex macro tqt
dw qanglex,tqt
endm
angley macro tqt
dw qangley,tqt
endm
anglez macro tqt
dw qanglez,tqt
endm
wait_for macro waittype,sample1
dw qwait_for,waittype
dd sample1
endm
exit macro
dw qexit
endm
set_bitmap macro bitmp,xsc,ysc
dw qbitmap
dd bitmp
dw xsc,ysc
endm
bullet macro
dw qbullet
endm
align_a macro ttxxd
dw qalign_a,ttxxd
endm
align_d macro spd
dw qalign_d,spd
endm
align_off macro ; automatic align mode off: (null)
dw qalign_off
endm
fade_all macro rdx,grn,blx,xad,xinc,waitstate
dw qfade_all,rdx,grn,blx,xad,xinc,waitstate
endm
fade_to macro palxt,xad,xinc,waitstate
dw qfade_to
dd offset palxt
dw xad,xinc,waitstate
endm
draw_icon macro number,x1,y1,xsc,ysc
dw qdraw_icon,number,x1,y1,xsc,ysc
endm
initialize macro
dw qinitialize
endm
follow_me macro tim
dw qfollow_me,tim
endm
follow_obj macro num,tim
dw qfollow_obj,num,tim
endm
point_obj macro ivx,ivy,ivz,tim
dw qpoint_obj
dd ivx,ivy,ivz
dw tim
endm
text macro txts
dw qtext
dd offset txts
endm
init_bitmap macro nm,blot,xscalq,yscalq
dw qinit_bitmap,nm
dd offset blot
dw xscalq,yscalq
endm
init_shape macro nb,shapeoffset
dw qinit_shape,nb
dd offset shapeoffset
endm
no_rotation macro
dw qno_rotation
endm
full_rotation macro
dw qfull_rotation
endm
xref_palette macro ofsetq
dw qxref_palette
dd offset ofsetq
endm
twist_it macro fx,fy,fz,time
dw qtwist_it
dd fx,fy,fz
dw time
endm
twist_x macro fx,time
dw qtwist_x
dd fx
dw time
endm
twist_y macro fy,time
dw qtwist_y
dd fy
dw time
endm
twist_z macro fz,time
dw qtwist_z
dd fz
dw time
endm
rotate_it macro rxa,rya,rza,acnt
dw qrotate_it
dw rxa,rya,rza,acnt
endm
rotate_x macro speedx,countr
dw qrotate_x,speedx,countr
endm
rotate_y macro speedy,countr
dw qrotate_y,speedy,countr
endm
rotate_z macro speedz,countr
dw qrotate_z,speedz,countr
endm
call_me macro ongf
dw qcall_me
dd ongf
endm
new_mainline macro ongfw
dw qnew_mainline
dd ongfw
endm
option1 macro ; make your own options
dw qoption1
endm
option2 macro
dw qoption2
endm
option3 macro
dw qoption3
endm